package ru.kreda.webapp.client.view;

import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;

/**
 * UI формы для главного окна приложения.
 */
public class AppLayout extends Composite {

	private static AppLayoutUiBinder uiBinder = GWT.create(AppLayoutUiBinder.class);

	interface AppLayoutUiBinder extends UiBinder<Widget, AppLayout> {
	}

	@UiField
	HeaderView headerView;
	@UiField
	LayoutContainer menuPanel;
	@UiField
	LayoutContainer contentPanel;

	public AppLayout() {
		initWidget(uiBinder.createAndBindUi(this));
	}

	/**
	 * Получить панель для отображения шапки
	 */
	public IHeaderDisplay getHeaderDisplay() {
		return headerView;
	}

	/**
	 * Получить основную панель для отображения содержимого
	 */
	public AcceptsOneWidget getContentPanel() {
		return new AcceptsOneWidget() {

			@Override
			public void setWidget(IsWidget w) {
				contentPanel.removeAll();
				if (w != null) {
					contentPanel.add((Widget) w);
					contentPanel.layout();
				}
			}
		};
	}
	
	public LayoutContainer getMenuPanel() {
		return menuPanel;
	}

}
